<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class usuarioModel extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    function obtener_todos_usuarios() {
        //se guarda en data las tuplas retornadas
        $data = $this->db->get('usuario');

        //se comprueba si se obtiene algun resultado y se retorna
        if ($data->num_rows() > 0) {
            return $data;
        } else {
            return FALSE;
        }
    }

    function obtener_usuario($usu_id) {
        //creamos un array vacio.       
        $data = array();

        //consultamos la base de datos
        $this->db->select('usuario_id,usuario_nombre,usuario_contrasena,persona_cedula,rol_id');
        $this->db->where('persona_cedula', $usu_id);

        /* nos aseguramos que pare de buscar cuando encuentr el primer resultado
          porque solo busca una tupla */
        $this->db->limit(1);

        //guardamos el resultado en la variable consulta
        $consulta = $this->db->get('usuario');

        //si retorna algo se asigna a data
        if ($consulta->num_rows() > 0) {
            $data = $consulta->row();
        }

        //se libera la variable consulta
        $consulta->free_result();
        return $data;
    }
    
    public function obtener_rol($usu) {
        $usuario = $usu;

        //consulta el id del rol del usuario que inicio sesion
        $this->db->select('rol_id');
        $this->db->from('usuario');
        $this->db->where('usuario_id', $usuario);       
        $consulta = $this->db->get();
        
        $consulta1 =  $consulta->first_row('array');
        return $consulta1['rol_id'];
    }

    public function obtener_nombre_rol($usu) {
        $usuario = $usu;

        //consulta el id del rol del usuario que inicio sesion
        $this->db->select('rol_id');
        $this->db->from('usuario');
        $this->db->where('usuario_id', $usuario);       
        $consulta = $this->db->get();
        
        $consulta1 =  $consulta->first_row('array');
        $rol = $consulta1['rol_id'];
        
        //consulta el nombre del rol rol del usuario que inicio sesion
        $this->db->select('rol_nombre');
        $this->db->from('rol');
        $this->db->where('rol_id', $rol);       
        $consulta2 = $this->db->get();

        $consulta3 =  $consulta2->first_row('array');
        return $consulta3['rol_nombre'];
        
    }
    
    function obtener_roles() {
        //se guarda en consulta las tuplas retornadas   
        $consulta = $this->db->get('rol');

        //se comprueba si se obtiene algun resultado y se retorna
        if ($consulta->num_rows() > 0) {
            return $consulta;
        } else {
            return FALSE;
        }
    }

    function crear_usuario($data, $usuario_id = null) {
        /* si el id del usuario es nulo, entonces los datos que llegan 
          dentro de la variable data corresponden a un nuevo usuario,
          de lo contrario corresponden a uno ya existente y se hace
          una actualizacion con el contenido de data */

        if ($usuario_id == null) {
            $this->db->insert('usuario', $data);
        } else {
            $this->db->where('usuario_id', $usuario_id);
            $this->db->update('usuario', $data);
        }
    }
    
    function crear_persona($persona,$persona_cedula=null) {
        
        if ($persona_cedula == null) {
            $this->db->insert('persona', $persona);
        } else {
            $this->db->where('persona_cedula', $persona_cedula);
            $this->db->update('persona', $persona);
        }    
    }

    function eliminar_usuario($usu_id) {
        //realizamos la consulta
        $this->db->where('usuario_id', $usu_id);
        $this->db->limit(1);

        //se hace el delete sobre el resultado de la consulta
        $this->db->delete('usuario');
        return true;
    }

    function iniciar_sesion($usu, $con) {

        $usuario = mysql_real_escape_string($usu);
        $contrasena = mysql_real_escape_string($con);

        
        //Se consulta el usuario con los valores ingresados por el usuario
        $this->db->select();
        $this->db->from('usuario');
        $this->db->where('usuario_nombre', $usuario);
        $this->db->where('usuario_contrasena', $contrasena);
        /*
        $where = array(
            'usuario_id' => $usuario,
            'usuario_contrasena' => $contrasena
        );
        $this->db->select()->from('usuario')->where($where);
*/
        $consulta = $this->db->get();

        //si la consulta retorna alguna fila
        if ($consulta->num_rows() > 0) {
            return $consulta->first_row('array');
        } else {
            return false;
        }
    }
    
    function persona_existe($cedula){
        
        $this->db->select();
        $this->db->where('persona_cedula',$cedula);
        $consulta = $this->db->get('persona');
        
        //si la consulta retorna alguna fila
        if ($consulta->num_rows() > 0) {
            return true;
        } else {
            return false;
        }
    }
    
    function usuario_existe($usuario){

        $this->db->select();
        $this->db->where('usuario_nombre',$usuario);
        
        $consulta = $this->db->get('usuario');
        
        if ($consulta->num_rows() > 0) {
            return true;
        } else {
            return false;
        } 
    }
    
    function visualizar_usuario($usu_id) {
        //realizamos la consulta
        $sql = "SELECT * FROM usuario u NATURAL JOIN persona p WHERE u.usuario_id = ".$usu_id;
        $consulta = $this->db->query($sql);

        if ($consulta->num_rows() > 0) {
            return $consulta->first_row('array');
        } else {
            return false;
        }
    }
}
